User interface with recipient status indication

ABSTRACT

A method of providing a user interface with recipient status information, in one aspect, may comprise detecting a message (e.g., online message such as instant messaging, chat, etc.) being initiated by a first user to a second user; gathering information associated with the second user; analyzing the gathered information; predicting a state of the second user based on the analyzing; and determining a notification action based on the predicted state of the second user, the notification action notifying the first user of the second user&#39;s state; and presenting a notification comprising one or more of graphical, textual, auditory, or tactile indications or combinations thereof to the first user.

FIELD

The present application relates generally to computers, computerapplications, and communications such as messaging, and moreparticularly to user interface with recipient status indication.

BACKGROUND

Known art gather “activity level” from instant-message users andprovides a “busy gauge” to others that indicates the user's activitylevel. The user's activity is computed automatically based upon theuser's interaction with their computer system. An input tracking routinerecords the user's input frequency, such as mouse clicks, voice inputs,keyboard inputs, and other inputs in order to determine the user'sactivity level. The recorded activity data is compared with activitylevel thresholds that can be either default thresholds oruser-specified. The user can select to use a manual input level in whichthe user specifies the user's activity level despite the number of inputactions received at the user's computer.

BRIEF SUMMARY

In one embodiment of the present disclosure, recipient statusinformation may be provided, e.g., via a user interface. In one aspect,a method for providing a user interface with recipient statusinformation, may comprise detecting an instant message being initiatedby a first user's device to a second user's device. The method may alsocomprise gathering information associated with the second user. Themethod may further comprise analyzing the gathered information. Themethod may also comprise predicting a state of the second user based onthe analyzing. In one aspect, the state of the second user may compriseone or more non-activity-level characteristics associated with thesecond user's device. The method may also comprise determining anotification action based on the predicted state of the second user. Thenotification action in one aspect is for notifying a first userassociated with the first user's device of the second user's state. Themethod may further comprise presenting a notification comprising one ormore of graphical, textual, auditory, or tactile indications orcombinations thereof to the first user.

A system for providing a user interface with recipient statusinformation, in one aspect, may comprise a user interface moduleoperable to execute on a processor, and further operable to detect aninstant message being initiated by a first user's device to a seconduser's device. An analyzer module may be operable to execute on theprocessor, and further operable to gather information associated with asecond user associated with the second user's device and analyze thegathered information. A forecast module may be operable to execute onthe processor, and further operable to predict a state of the seconduser based on the analyzing. In one aspect, the state of the second usercomprises one or more non-activity-level characteristics associated withthe second user's device. An action module may be operable to execute onthe processor, and further to determine a notification action based onthe predicted state of the second user, the notification action fornotifying a first user associated with the first user's device of thesecond user's state. The user interface module may be further operableto present a notification comprising one or more of graphical, textual,auditory, or tactile indications or combinations thereof to the firstuser's device.

A computer readable storage medium storing a program of instructionsexecutable by a machine to perform one or more methods described hereinalso may be provided.

Further features as well as the structure and operation of variousembodiments are described in detail below with reference to theaccompanying drawings. In the drawings, like reference numbers indicateidentical or functionally similar elements.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is an overview of a methodology of the present disclosure in oneembodiment that provides a user interface with recipient statusindication.

FIG. 2 shows an example of a recipient's calendar, e.g., collected andanalyzed according a method shown in FIG. 1.

FIG. 3 shows a display window with graphical indication for aninstant-message region in one embodiment of the present disclosure.

FIG. 4 shows an example of an actual window for an instant messagingregion.

FIG. 5 illustrates a schematic of an example computer or processingsystem that may implement the system in one embodiment of the presentdisclosure.

DETAILED DESCRIPTION

Disclosed in one embodiment is an instant-messaging system or the like,or another communication system, in which the user's instant-messagingwindow (or another presentation window or panel on a user's device)provides a graphical indication of one or more of the followingcharacteristics of the recipient of the message: 1) battery (charge)level of remote recipient's device, 2) phone call coming in for remoterecipient, 3) quality of service for remote recipient's device (e.g.,quality of network connectivity), 4) movement of remote recipient'sdevice (e.g., remote accelerometer indicates user is in a car), 5)geolocation of the recipient's device (e.g., GPS coordinates), 6) thepresence of individuals who are near to the recipient (e.g., asdetermined by motion detectors, network co-presence, or geolocation), 7)calendar information of recipient (e.g., a meeting will occur within 1minute). Forecasts may be also made to predict recipient states. In oneembodiment of the present disclosure, the state of the user is notnecessarily the current interaction with the user device, e.g., whetheror not the user is actively interacting with the device. Rather thestate of the recipient user may comprise information, e.g., theabove-described characteristics associated with the user's device andinformation stored or available via the user's device. In one aspect,such characteristics are referred to as “non-activity-levelcharacteristics” or NAL, which may comprise characteristics not directlyinvolving user interactions or lack of interactions with a device. Onthe other hand, the “activity-level” characteristics may include user'sinput frequency, such as mouse clicks, voice inputs, keyboard inputs,and other inputs in order to determine the user's activity level. Asdescribed above, the present disclosure's NAL characteristic, in oneembodiment, comprise such characteristics as battery (charge) levelsecond user's device, phone call coming in for the second user, qualityof service associated with the second user's device, movement of thesecond user's device, geolocation of the second user's device, presenceof one or more individuals in proximity to the second user (e.g.,proximity defined by a distance threshold), or calendar informationassociated with the second user, or combinations thereof, and/or othersuch characteristics.

Instant messaging (IM) refers to an online communication, e.g., over anetwork, between users (senders and receivers) using devices orcomputing devices such as desktop computers, laptop computers,smartphones, cell phones, tablets, and other devices. An IM server orapplication allows the users to communicate and communicate the messagesto the users. Messages are usually typed text, but may include livevoice or video, or combinations thereof. Other media may be possible forcommunicating.

FIG. 1 is an overview of a methodology of the present disclosure in oneembodiment that provides a user interface with recipient statusindication. At 102, a user (e.g., referred to as User 1 or a first user)initiates an instant message to another user, e.g., a remote user (e.g.,referred to as User 2 or a second user). A remote user, for example, isusing another device from the first user's device in communicating withthe first user. A method or system of the present disclosure detects aninstant message being initiated by a first user to a second user.

At 104, an analysis unit (AU) or like functionality collects informationabout the remote user (User 2) and analyzes the information. Forexample, the AU may gather information such as remote user's electroniccalendar 106, device battery level 108, quality of service (QOS) of thenetwork 110 used by User 2, geolocation 112, accelerometer 114,telephone status 116 and/or proximity to other people 118. Proximity maybe defined by a threshold, e.g., within a defined distance value. Otherinformation may be also gathered and analyzed. User 2's geolocation maybe determined based on GPS signal received from that user's device anddetermining location of User 2 based on the received GPS signal. QOS orquality of network connectivity from that location may be determinedbased on the history of past services that were available at thatlocation.

As another example, the remote user's calendar may be analyzed toidentify or determine User 2's current meetings, meetings nearby intime, the people involved in the meetings, local holidays, trends ofUser 2 through time with respect to device-usage patterns, etc. In orderto protect privacy, this analysis may be performed in an opt-in fashionon the part of User 2, e.g., User 2 may select to block the calendarinformation from being collected and/or analyzed. In another example,the gathering of data and analysis may be performed in a ways so as notto expose certain aspects of the information. For example, theindication provided to User 1 may simply be a coloration of theinstant-message window without User 1 being provided precise informationas to the people involved in a meeting that User 2 will engage in withinT=5 minutes.

One way the remote user's information (e.g., User 2's information) canbe collected, for example, is by having the instant messaging (IM)application on the remote user's device periodically report information(e.g., battery level, signal strength, accelerometer data, telephonestatus, location, etc.) to a central server, such as an IM server. Thatserver can then broker the information to the people (e.g., User 1) whowant to contact the remote user (e.g., User 2).

Another way the remote user's information can be collected, for example,is by having the IM applications initiate a direct connection with eachother; e.g., when user A wants to initiate contact user B, the IMservice helps create a direct connection between user A's device anduser B's device, e.g., the way the file transfer feature over IM works.Once the two devices are connected, they can directly exchangeinformation with each other (e.g., battery level, signal strength, etc.)

At 120, a forecast unit (FU) or like functionality predicts makes aforecast with respect to the remote user based on the collectedinformation and analysis of the information at 104. The forecast unitmay utilize rule-based algorithm to make forecasts based on thecollected information. For example, the forecast unit may predict thatUser 2 will disconnect soon at 122, e.g., based on the collectedinformation at 104 and analysis thereof, e.g., if the information andanalysis signal that User 2's network connecting is poor, User 2device's battery level is low or about to deplete, User 2's calendarindicate that User 2 has another engagement scheduled in the very nearfuture, etc. For example, the forecast unit may detect a low devicebattery level for User 2 and determine that they will disconnect fromthe instant messaging service within a few minutes. Or it may usegeolocation and accelerometer data of User 2's device to determine thatit is about to enter an area with poor network coverage and determinethat it may soon disconnect from the instant messaging service. Theforecast unit may make use of “historical” data for User 2, for example,a history of being in an area of poor QOS when in a certain location inthe past.

As another example, the forecast unit may predict at 124 that User 2 isbusy, e.g., based on the collected information at 104 and analysis ofthat information, for example, if User 2's calendar indicates that User2 is currently engaged with another matter, User 2 is currently on thephone, etc.

Yet as another example, the forecast unit may predict at 126 that User 2is soon to be busy, e.g., based on the collected information at 104 andanalysis of that information, for example, if User 2's calendarindicates that User 2 has another matter scheduled that is to take placesoon.

At 128, an action unit computes action as a function of the output fromthe analysis unit and forecast unit, e.g., compute“Action”=FunctionOf(AU, FU). The predictions of the forecast unit arecombined with data collected by the analysis unit to determine an actionto be performed in User 1's user interface. This action may includegraphical indications 130 such as a change in IM status, a notificationmessage (e.g., a pop-up window or a smartphone notification), a changein mark, icon, or color of User 2's representation in the buddy list, ora change in placement of User 1's conversation window with User 2. Thisaction may also be tactile 136 or auditory 134, such as a vibration ofUser 1's smartphone or by playing a sound or music file. Such vibrationsor sounds may be configurable on a per-user basis (e.g., differentvibration patterns or different sounds for different IM buddies). Theaction may also be textual 132, e.g., a text notification.

At 140, based on the computed action, a graphical, textual, audio, ortactile indication of User 2's status as determined from 104, 120 and128 is provided to User 1. For example, one or more of the graphical,textual, tactile, or auditory action determined at 128 is rendered toUser 1. Other form of notification may be utilized. This actionrendering can be performed before User 1 intends to type a message toUser 2 (e.g., User 2's IM status changes when their device battery leveldrops to a low level), or it can be performed when User 1 takes steps toinitiate contact with User 2 (e.g., they begin to type a message to User2 and receive auditory feedback because User 2 just began a meeting).For instance, real-time multimedia feedback may be returned.

The following illustrates a use case scenario for the methodology of thepresent disclosure in one embodiment. FIG. 2 shows an example of User2's calendar, e.g., collected and analyzed according a method shown inFIG. 1. User 1 initiates an instant message, or chat, with User 2 (named“WorkBuddy3”) at 12:59 PM on July 26th. The analyzer unit AU and theforecast unit FU detect that at 1:00 PM, there will be a meeting withUser 2. As a result of this forecast of an attention interrupt, ormeeting, for User 2 within T=1 minute, a sparkle graphic appears byWorkBuddy3's name. Note that recipient WorkBuddy3 need not take anyspecial action to specify that he will be busy in 1 minute.

Additionally, the color of the instant-message window may also indicatethat recipient WorkBuddy3 is likely to be busy within 1 minute, or thathis battery level is low, or that his quality of service (QOS) is likelyto be low in 1 minute, based on a record of historical usage patterns.For example, the instant-message window may change color, size, texture,blink rate, intensity, or have a symbol to indicate status of User 2.FIG. 3 shows a display window with graphical indication for aninstant-message region in one embodiment of the present disclosure. Thewindow shows an indication 302 related to User 2 (“WorkBuddy3”).

FIG. 4 shows an actual window for an instant messaging region. In thisexample, the sparkle symbol 402 indicates that WorkBuddy1 has a batterylevel less than a certain level, or that he is likely to have poorquality of service within a minute, or that his phone has just rangand/or he is on the phone. Normally User 1 would be typing into theregion marked by the sparkle symbol 402 as User 1 initiates a message toUser 2. However, the displayed symbol serves as a notification to User 1that User 2 would be busy for instant messaging.

A methodology of the present disclosure may be integrated with or usedwith an instant messaging system. An analysis provides the state of arecipient of an instant message. This state need not be associated withthe recipient user's current interactions with the computing device,e.g., the recipient is typing furiously. Rather, the state provides forinformation such as the recipient's battery state is low and therecipient's calendar entry indicates a meeting within x amount of time,e.g., 3 minutes. Graphical, tactile, and/or auditory indications ofrecipient state may be provided to a user other than the recipient.

Hence, in one embodiment, the recipient state may comprise one or moreof battery (charge) level of remote recipient's device, phone callcoming in for remote recipient, quality of service for remoterecipient's device (e.g., quality of network connectivity, movement ofremote recipient's device (e.g., remote accelerometer indicates user isin a car), geolocation of the remote recipient's device (e.g., GPScoordinates), the presence of individuals who are near the recipient,(e.g., as determined by motion detectors, network co-presence, orgeolocation), calendar information (e.g., meetings that recipient hasfor the next few hours).

In one embodiment, the state is a forecast of recipient state (e.g., in2 minutes, the recipient will likely have poor quality of service, thebattery is likely to die, the connection is likely to be lost, etc.).The graphical indication may comprise any of color, intensity, blinkrate, window size/shape, multimedia, text, audio, and others. Thetactile indication may comprise a pattern of device vibration, which maybe customized for each individual remote recipient. The auditoryindication may comprise a sound or music file, which may be customizedfor each individual remote recipient.

In one embodiment, the state comprise information on number of otherinstant-message windows on screen of the recipient, number of activeinstant-message windows on screen, or number of other applications open,or combinations thereof, and/or others. Such information may be known tothe IM application or server, such as the number of IM conversationstaking place. In one example, the logic or methodology of the presentdisclosure may be integrated with an IM application, e.g., exist insideof the IM application, in which case such information is readilyavailable. In another example, hooks or APIs may be implemented and/orused to access this information. Other information, such as the numberof other open applications, may be known to the underlying operatingsystem; APIs may be used to query for this information.

In one embodiment, the recipient may define and apply customized rulesto their state to be used in conjunction with the state analysis. Forinstance, the recipient via a graphical user interface or likefunctionality may select and/or specify options that define and applycustomized rules.

A client graphical user interface (GUI) may provide indication ofcertain statuses of the recipient. An online synchronous communicationmay be obtained between a first user and second user, monitoring thestatus of the second user, and providing graphical, tactile, and/orauditory indications in the first user's client interface of the statusof the second user. As described above, the statuses may comprisebattery strength, network signal strength, level of activity in otherapplications, speed and acceleration of user's device, mode oftransportation (if any), the number of additional conversations thesecond user is currently in, whether there is anyone in the seconduser's room or close proximity (particularly someone with whom thesecond user is talking), or whether the second user is involved in oneor more telephone calls, or combinations thereof. User B's device maycollect the information and reports it to a central server or directlyto user A's device.

A graphical indication may comprise using particular background colorsto indicate particular types of operational status, e.g., blue toindicate the number of concurrent chats, green to indicate networkstrength. An intensity of each color of graphical indication may be usedto represent the level of the associated operational status (e.g., lightblue indicates only few concurrent conversations and “idlecommunications,” while dark blue indicates many).

A GUI may also provide an alert indicating the battery of the remoteuser is about to deplete, an alert indicating the network communicationsof the remote user is about to be lost (e.g., due to little or nosignal).

While the methodology of the present disclosure was described withreference to instant messaging, it should be understood that the logicor methodology may be utilized with respect to other communicationmethods, and the present disclosure need not be limited to instantmessaging systems only.

FIG. 5 illustrates a schematic of an example computer or processingsystem that may implement the system in one embodiment of the presentdisclosure. The computer system is only one example of a suitableprocessing system and is not intended to suggest any limitation as tothe scope of use or functionality of embodiments of the methodologydescribed herein. The processing system shown may be operational withnumerous other general purpose or special purpose computing systemenvironments or configurations. Examples of well-known computingsystems, environments, and/or configurations that may be suitable foruse with the processing system shown in FIG. 5 may include, but are notlimited to, personal computer systems, server computer systems, thinclients, thick clients, handheld or laptop devices, multiprocessorsystems, microprocessor-based systems, set top boxes, programmableconsumer electronics, network PCs, minicomputer systems, mainframecomputer systems, and distributed cloud computing environments thatinclude any of the above systems or devices, and the like.

The computer system may be described in the general context of computersystem executable instructions, such as program modules, being executedby a computer system. Generally, program modules may include routines,programs, objects, components, logic, data structures, and so on thatperform particular tasks or implement particular abstract data types.The computer system may be practiced in distributed cloud computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed cloudcomputing environment, program modules may be located in both local andremote computer system storage media including memory storage devices.

The components of computer system may include, but are not limited to,one or more processors or processing units 12, a system memory 16, and abus 14 that couples various system components including system memory 16to processor 12. The processor 12 may include a module 10 that performsthe methods described herein. The module 10 may be programmed into theintegrated circuits of the processor 12, or loaded from memory 16,storage device 18, or network 24 or combinations thereof.

Bus 14 may represent one or more of any of several types of busstructures, including a memory bus or memory controller, a peripheralbus, an accelerated graphics port, and a processor or local bus usingany of a variety of bus architectures. By way of example, and notlimitation, such architectures include Industry Standard Architecture(ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA)bus, Video Electronics Standards Association (VESA) local bus, andPeripheral Component Interconnects (PCI) bus.

Computer system may include a variety of computer system readable media.Such media may be any available media that is accessible by computersystem, and it may include both volatile and non-volatile media,removable and non-removable media.

System memory 16 can include computer system readable media in the formof volatile memory, such as random access memory (RAM) and/or cachememory or others. Computer system may further include otherremovable/non-removable, volatile/non-volatile computer system storagemedia. By way of example only, storage system 18 can be provided forreading from and writing to a non-removable, non-volatile magnetic media(e.g., a “hard drive”). Although not shown, a magnetic disk drive forreading from and writing to a removable, non-volatile magnetic disk(e.g., a “floppy disk”), and an optical disk drive for reading from orwriting to a removable, non-volatile optical disk such as a CD-ROM,DVD-ROM or other optical media can be provided. In such instances, eachcan be connected to bus 14 by one or more data media interfaces.

Computer system may also communicate with one or more external devices26 such as a keyboard, a pointing device, a display 28, etc.; one ormore devices that enable a user to interact with computer system; and/orany devices (e.g., network card, modem, etc.) that enable computersystem to communicate with one or more other computing devices. Suchcommunication can occur via Input/Output (I/O) interfaces 20.

Still yet, computer system can communicate with one or more networks 24such as a local area network (LAN), a general wide area network (WAN),and/or a public network (e.g., the Internet) via network adapter 22. Asdepicted, network adapter 22 communicates with the other components ofcomputer system via bus 14. It should be understood that although notshown, other hardware and/or software components could be used inconjunction with computer system. Examples include, but are not limitedto: microcode, device drivers, redundant processing units, external diskdrive arrays, RAID systems, tape drives, and data archival storagesystems, etc.

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages, a scripting language such as Perl, VBS or similarlanguages, and/or functional languages such as Lisp and ML andlogic-oriented languages such as Prolog. The program code may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider).

Aspects of the present invention are described with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

The flowchart and block diagrams in the figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which comprises one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

The computer program product may comprise all the respective featuresenabling the implementation of the methodology described herein, andwhich—when loaded in a computer system—is able to carry out the methods.Computer program, software program, program, or software, in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: (a) conversion to anotherlanguage, code or notation; and/or (b) reproduction in a differentmaterial form.

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting of the invention. Asused herein, the singular forms “a”, “an” and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms “comprises”and/or “comprising,” when used in this specification, specify thepresence of stated features, integers, steps, operations, elements,and/or components, but do not preclude the presence or addition of oneor more other features, integers, steps, operations, elements,components, and/or groups thereof.

The corresponding structures, materials, acts, and equivalents of allmeans or step plus function elements, if any, in the claims below areintended to include any structure, material, or act for performing thefunction in combination with other claimed elements as specificallyclaimed. The description of the present invention has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The embodiment was chosen and described in order to best explain theprinciples of the invention and the practical application, and to enableothers of ordinary skill in the art to understand the invention forvarious embodiments with various modifications as are suited to theparticular use contemplated.

Various aspects of the present disclosure may be embodied as a program,software, or computer instructions embodied in a computer or machineusable or readable medium, which causes the computer or machine toperform the steps of the method when executed on the computer,processor, and/or machine. A program storage device readable by amachine, tangibly embodying a program of instructions executable by themachine to perform various functionalities and methods described in thepresent disclosure is also provided.

The system and method of the present disclosure may be implemented andrun on a general-purpose computer or special-purpose computer system.The terms “computer system” and “computer network” as may be used in thepresent application may include a variety of combinations of fixedand/or portable computer hardware, software, peripherals, and storagedevices. The computer system may include a plurality of individualcomponents that are networked or otherwise linked to performcollaboratively, or may include one or more stand-alone components. Thehardware and software components of the computer system of the presentapplication may include and may be included within fixed and portabledevices such as desktop, laptop, and/or server. A module may be acomponent of a device, software, program, or system that implements some“functionality”, which can be embodied as software, hardware, firmware,electronic circuitry, or etc.

The embodiments described above are illustrative examples and it shouldnot be construed that the present invention is limited to theseparticular embodiments. Thus, various changes and modifications may beeffected by one skilled in the art without departing from the spirit orscope of the invention as defined in the appended claims.

We claim:
 1. A method for providing a user interface with recipientstatus information, comprising: detecting an instant message beinginitiated by a first user's device to a second user's device; gatheringinformation associated with the second user; analyzing the gatheredinformation; predicting, by a processor, a state of the second userbased on the analyzing, the state of the second user comprising one ormore non-activity-level characteristics associated with the seconduser's device; determining a notification action based on the predictedstate of the second user, the notification action notifying a first userassociated with the first user's device of the second user's state; andpresenting, by the processor, a notification comprising one or more ofgraphical, textual, auditory, or tactile indications, or combinationsthereof to the first user, the notification comprising an alertpresented on the first user's device that the second user's device willbecome unavailable within a specified amount of time, without the seconduser having to take any action that the second user will not beavailable within the specified amount of time, the notificationcomprising the graphical indication displayed in an input area of aninstant messaging graphical user interface where the instant message istyped, wherein the state of the second user that is predicted comprisesgeolocation of the second user's device, and network connection qualitybased on the geolocation of the second user's device, the predicting ofthe state comprising the network connection quality comprisingforecasting whether the second user's device will disconnect based onpredicting whether the second user's device will enter an area with poornetwork coverage determined based on the geolocation of the seconduser's device, accelerometer data of the second user's device, andhistorical data of the second user's device being in the area andhistory of past services that were available in the area, the state ofthe second user comprising at least speed and acceleration of the seconduser's device, wherein the information associated with the second useris obtained at least by allowing an application supporting the instantmessage to periodically report the information associated with thesecond user's device to a server supporting the instant message.
 2. Themethod of claim 1, wherein the state of the second user comprises one ormore of battery charge level of the second user's device, phone callcoming in for the second user, quality of service associated with thesecond user's device, movement of the second user's device, presence ofone or more individuals in proximity to the second user, or calendarinformation associated with the second user, or combinations thereof. 3.The method of claim 1, wherein the state is a forecast of the seconduser's state.
 4. The method of claim 1, wherein the notificationcomprises the graphical indication and the graphical indicationcomprises one or more of color, intensity, blink rate, window size,window shape, multimedia, or text, audio, or combinations thereof. 5.The method of claim 1, wherein the notification comprises the tactileindication and the tactile indication comprises a pattern of devicevibration.
 6. The method of claim 5, wherein the pattern of devicevibration is customized for the second user.
 7. The method of claim 1wherein the notification comprises the auditory indication and theauditory indication comprises a sound or music file, or combinationthereof.
 8. The method of claim 7, wherein the sound or music file iscustomized for the second user.
 9. The method of claim 1, wherein thestate comprises information on a number of other instant-message windowson a screen of the second user, a number of active instant-messagewindows on the screen, a number of other applications open, orcombinations thereof.
 10. The method of claim 1, the second user isenabled to define and apply customized rules to the state in theanalyzing.